<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // ...  扩展运算符(展开运算符) 

    // 字符串的方法...
    // at()
    // includes
    // startsWith
    // endsWith

    // repeat()

    // padStart()
    // padEnd()

    // trimStart()  -> trimLeft()
    // trimEnd()   -> trimRight()


    // 

    // 自执行
    // (function () {

    // })();

    // (() => { })();

    // (function (v) {
    //     return v;
    // })();

    // var a = (v => v)(10);
    // var b = ((v = 5) => v)(3);
    // var c = a + b;
    // console.log(c);






    // 将匿名函数作为参数 => 回调函数
    setInterval(function () {

    }, 1000);

    setInterval(() => {

    }, 1000);


    var fn = function () {

    }

    var obj = {
        a: 1,
        b: 2,
        sum: function () {

        }
    }


    document.onclick = function () {

    }


    // 箭头函数的问题
    // 1. 箭头函数没有自己的this指向 -> 依赖于父作用域this指向
    // 2. 没有arguments   =>   Rest参数  (扩展运算符的逆应用)
    // 3. 不能作为构造函数 => 自定义构造函数
    // 4. 生成器函数(Generator)


    // 解构赋值 => 快速从数组或对象中取值,对变量赋值   => 语法糖(复杂的操作由系统内部实现 用户只需要按照语法要求书写即可)

    var arr = [1, [2, [3, [4, [5, [6, [7]]]]]]]

    // var num = arr[1][1][1][1][1][1][0];
    // console.log(num);

    var [a, [b, [c, [d, [e, [f, [g]]]]]]] = arr
    console.log(a, b, c, d, e, f, g);






</script>

</html>